<p>It makes sense to handle all related actions in the same place. Thus, the same <code>&lt;action&gt;</code> might logically handle all facets of
CRUD on an entity, with no confusion in the naming about which <code>&lt;forward/&gt;</code> handles which facet. But go very far beyond that, and it
becomes difficult to maintain a transparent naming convention. </p>
<p>So to ease maintenance, this rule raises an issue when an <code>&lt;action&gt;</code> has more than the allowed number of
<code>&lt;forward/&gt;</code> tags.</p>
<h2>Noncompliant Code Example</h2>
<p>With the default threshold of 4:</p>
<pre>
&lt;action path='/book' type='myapp.BookDispatchAction' name='form' parameter='method'&gt;
  &lt;forward name='create' path='/WEB-INF/jsp/BookCreate.jspx' redirect='false'/&gt;
  &lt;forward name='read' path='/WEB-INF/jsp/BookDetails' redirect='false'/&gt;
  &lt;forward name='update' path='/WEB-INF/jsp/BookUpdate.jspx' redirect='false'/&gt;
  &lt;forward name='delete' path='/WEB-INF/jsp/BookDelete.jspx' redirect='false'/&gt;
  &lt;forward name='authorRead' path='WEB-INF/jsp/AuthorDetails' redirect='false'/&gt;  &lt;!-- Noncompliant --&gt;
&lt;/action&gt;
</pre>
<h2>Compliant Solution</h2>
<pre>
&lt;action path='/book' type='myapp.BookDispatchAction' name='bookForm' parameter='method'&gt;
  &lt;forward name='create' path='/WEB-INF/jsp/BookCreate.jspx' redirect='false'/&gt;
  &lt;forward name='read' path='/WEB-INF/jsp/BookDetails' redirect='false'/&gt;
  &lt;forward name='update' path='/WEB-INF/jsp/BookUpdate.jspx' redirect='false'/&gt;
  &lt;forward name='delete' path='/WEB-INF/jsp/BookDelete.jspx' redirect='false'/&gt;
&lt;/action&gt;

&lt;action path='/author' type='myapp.AuthorDispatchAction' name='authorForm' parameter='method'&gt;
  &lt;forward name='authorRead' path='WEB-INF/jsp/AuthorDetails' redirect='false'/&gt;
&lt;/action&gt;
</pre>

